/* jshint esversion: 6 */
/* es6默认严格模式，需要使用babel-plugin-transform-remove-strict-mode 替代 @babel/plugin-transform-runtime*/

// 处理px2rem
import 'lib-flexible';

// mui只能用文件形式导入
import './lib/mui/css/mui.min.css';
import './lib/mui/css/icons-extra.css';

import Vue from 'vue';

// 方法一：按需导入使用mint-ui需要导入 css文件，否则轮播图平铺页面，样式无效，
//方法二：配置babelrc文件，安装babel-plugin-component插件,按需导入时，自动引入相应的css文件
// import 'mint-ui/lib/style.min.css';
// import { Header, Swipe, SwipeItem, Button } from 'mint-ui';
// Vue.component(Header.name, Header);
// Vue.component(Swipe.name, Swipe);
// Vue.component(SwipeItem.name, SwipeItem);
// Vue.component(Button.name, Button);

//使用lazy load 需要导入完整的mint-ui(加载的圈)
import Mint from "mint-ui";
// import "mint-ui/lib/style.css";
Vue.use(Mint);
import {
    Toast
} from 'mint-ui'

// 引入完整element-ui
// import ElementUI from 'element-ui';
// import 'element-ui/lib/theme-chalk/index.css';
// Vue.use(ElementUI)

// 按需引入，css在 babel 中设置，同时使用了element-ui 和 mint-ui两个组件，需要取一个别名区分不同的组件
// 同一名字
import {
    InputNumber,
    Button
} from 'element-ui';
Vue.component(InputNumber.name, InputNumber);
Vue.component(Button.name, Button);

import "./mock.js";

// import VueResource from 'vue-resource';
// Vue.use(VueResource);
// Vue.http.options.emulateJSON = true;

// 用 axios 代替 vue-resource 发送 http 协议
import axios from 'axios';
// qs模块用于序列化和反序列化，方法同JSON
import qs from 'qs';
// 将axios和qs挂载到Vue上，全局使用
Vue.prototype.$http = axios;
Vue.prototype.$qs = qs;
// 设置axios 请求的响应头和请求响应时间
axios.defaults.timeout = "1000*60";
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';

axios.interceptors.request.use((config) => {
    Mint.Indicator.open({ //打开loading
        text: '加载中...',
        spinnerType: 'fading-circle'
    });
    return config;
}, (err) => {
    return Promise.reject(err);
});

axios.interceptors.response.use(
    response => {
        Mint.Indicator.close(); //关闭loading
        return response;
    },
    error => {
        if (error.message.includes('timeout')) { // 判断请求异常信息中是否含有超时timeout字符串
            Toast("已为您加载以下内容")
            return Promise.reject(error); // reject这个错误信息
        }
        return Promise.reject(error);
    });

// main.js 和 router.js 都需要导入
import VueRouter from 'vue-router';
import app from './App.vue';
// vue 的组件 import 后还需要使用 use()
Vue.use(VueRouter);

// 点击可放大
import VuePreview from 'vue-preview';
Vue.use(VuePreview);

// 图片懒加载
import VueLazyLoad from 'vue-lazyload';
Vue.use(VueLazyLoad);

// 使用VueAwesomeSwiper组件
// import VueAwesomeSwiper from 'vue-awesome-swiper';
// Vue.use(VueAwesomeSwiper);



// 不能只单独import js文件，需要将 router 实例也一起导入
import router from './router.js';

import store from './store.js'

var vm = new Vue({
    el: "#app",
    data: {
        message: ""
    },
    methods: {

    },
    render: c => c(app),
    router,
    store,
});